
package com.dhcc.bpm.modules.api.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;

/**
 * @ClassName Api
 * @Description api表实体类
 * @Author daina
 * @Date 2020/2/25 15:22
 * @Version V1.0
 * @Copyright: 2020 东华软件 . All rights reserved.
 */
@Data
@TableName("opc_api")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "Api对象", description = "api表")
public class Api extends BaseEntity {

	private static final long serialVersionUID = 1L;

	/**
	 * 名称
	 */
	@ApiModelProperty(value = "名称")
	@Excel(name = "API名称")
	private String apiName;
	/**
	 * 英文名称
	 */
	@ApiModelProperty(value = "英文名称")
	@Excel(name = "英文名称")
	private String apiEname;
	/**
	 * 编号
	 */
	@ApiModelProperty(value = "编号")
	@Excel(name = "apiCode编号")
	private String apiCode;

	/**
	 * 编码
	 */
	@ApiModelProperty(value = "编号")
	@Excel(name = "apiNum编号")
	private String apiNum;
	/**
	 * 版本
	 */
	@ApiModelProperty("业务状态")
	@JsonSerialize(
			using = ToStringSerializer.class,
			nullsUsing = NullSerializer.class
	)
	@Excel(name = "发布状态")
	private Integer status;
	@ApiModelProperty(value = "版本")
	@Excel(name = "版本")
	private String apiVersion;
	/**
	 * 访问协议
	 */
	@ApiModelProperty(value = "访问协议")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "访问协议")
	private Integer accessProtocol;
	/**
	 * 路径
	 */
	@ApiModelProperty(value = "路径")
	@Excel(name = "路径")
	private String apiPath;
	/**
	 * 路径
	 */
	@ApiModelProperty(value = "测试路径")
	@Excel(name = "测试路径")
	private String apiPathTest;
	/**
	 * 是否需要回调地址
	 */
	@ApiModelProperty(value = "是否需要回调地址")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "是否需要回调地址")
	private Integer isRequireCallbackUrl;
	/**
	 * 是否需要回调地址
	 */
	@ApiModelProperty(value = "权限等级")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "权限等级")
	private String  apiScope;
	/**
	 * 安全认证类型
	 */
	@ApiModelProperty(value = "安全认证类型")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "安全认证类型")
	private Integer safeType;
	/**
	 * 报文类型
	 */
	@ApiModelProperty(value = "报文类型")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "报文类型")
	private Integer messageType;
	/**
	 * 所属产品
	 */
	@ApiModelProperty(value = "是否被其他产品所引用")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "是否被其他产品所引用")
	private Long opcProductUse;
	/**
	 * 生产环境网关ID
	 */
	@ApiModelProperty(value = "生产环境网关ID")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "生产环境网关ID")
	private String opcGatewayId;
	/**
	 * 沙箱环境网关ID
	 */
	@ApiModelProperty(value = "沙箱环境网关ID")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "沙箱环境网关ID")
	private String opcGatewayIdTest;
	/**
	 * 权限等级
	 */
	@ApiModelProperty(value = "权限等级")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "权限等级")
	private Integer privilegeLevel;
	/**
	 * 是否收费
	 */
	@ApiModelProperty(value = "是否收费")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "是否收费")
	private Integer isCost;
	/**
	 * 描述
	 */
	@ApiModelProperty(value = "描述")
	//@TableField(value = "`describe`")
	@Excel(name = "描述")
	private String describe;
	/**
	 * 星级评价
	 */
	@ApiModelProperty(value = "星级评价")
	@Excel(name = "星级评价")
	private String starRating;


	/**
	 * 租户ID
	 */
	@ApiModelProperty(value = "租户ID")
	@Excel(name = "租户ID")
	private String tenantId;

	@ApiModelProperty(value = "文档附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "文档附件")
	private Long busId;

	@ApiModelProperty(value = "配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "配置文件附件")
	private Long msgConfigId;

	@ApiModelProperty(value = "后端服务")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "后端服务")
	private Long backserviceId;

	@ApiModelProperty(value = "权限中心")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "权限中心")
	private Long authCenterId;

	@ApiModelProperty(value = "启停状态")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "启停状态")
	private Integer apiStatus;

	@ApiModelProperty(value = "请求方法")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "请求方法")
	private Integer requestMethod;

	@ApiModelProperty(value = "是否是标准服务")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "是否是标准服务")
	private Integer isStandard;

	@ApiModelProperty(value = "是否是标准协议")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "是否是标准协议")
	private Integer isStandardProtocol;

	@ApiModelProperty(value = "是否是标准报文")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "是否是标准报文")
	private Integer isStandardMsg;

	@ApiModelProperty(value = "是否是内部服务")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "是否是内部服务")
	private Integer isInsideService;

	@ApiModelProperty(value = "转换地址")
	@Excel(name = "转换地址")
	private String transformUrl;


	private String openapiPath;

	/**
	 * 认证类型
	 */
	@ApiModelProperty(value = "加密类型")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "加密类型")
	private Integer authType;

	/**
	 * 原子服务关联字段
	 */
	@ApiModelProperty(value = "原子服务")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "原子服务")
	private Long atomicServiceId;

	/**
	 * 协议服务socketId关联字段
	 */
	@ApiModelProperty(value = "协议服务socketId关联字段")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "协议服务socketId关联字段")
	private Long socketId;

	/**
	 * 协议服务webspheremqId关联字段
	 */
	@ApiModelProperty(value = "协议服务webspheremqId关联字段")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "协议服务webspheremqId关联字段")
	private Long webspheremqId;

	/**
	 * 协议服务soapId关联字段
	 */
	@ApiModelProperty(value = "协议服务soapId关联字段")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "协议服务soapId关联字段")
	private Long soapId;

	/**
	 * 协议服务rocketmqId关联字段
	 */
	@ApiModelProperty(value = "协议服务rocketmqId关联字段")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "协议服务rocketmqId关联字段")
	private Long rocketmqId;

	/**
	 * 协议服务rabbitmqId关联字段
	 */
	@ApiModelProperty(value = "协议服务rabbitmqId关联字段")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "协议服务rabbitmqId关联字段")
	private Long rabbitmqId;

	/**
	 * 协议服务tonglinkmqId关联字段
	 */
	@ApiModelProperty(value = "协议服务tonglinkmqId关联字段")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "协议服务tonglinkmqId关联字段")
	private Long tonglinkmqId;

	/**
	 * xml报文路径
	 */
	@ApiModelProperty(value = "xml报文路径")
	@Excel(name = "xml报文路径")
	private String xmlMsgUrl;

	/**
	 * xml报文文件
	 */
	@ApiModelProperty(value = "xml报文文件")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	@Excel(name = "xml报文文件")
	private Long xmlMsgId;

	/**
	 * 8583报文路径
	 */
	@ApiModelProperty(value = "8583报文路径")
	@Excel(name = "8583报文路径")
	private String efetMsgUrl;

	/**
	 * xml报文路径
	 */
	@ApiModelProperty(value = "xml报文路径")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
//	@Excel(name = "xml报文路径")
	private Long efetMsgId;


	/**
	 * 后端服务请求路径
	 */
	@ApiModelProperty(value = "后端服务请求路径")
	@Excel(name = "后端服务请求路径")
	private String backserviceReqUrl;


	/**
	 * 后端服务请求方法
	 */
	@ApiModelProperty(value = "后端服务请求方法")
	@Excel(name = "后端服务请求方法")
	private String backserviceReqMethod;

	/**
	 * 后端服务请求方法
	 */
	@ApiModelProperty(value = "后端服务请求类型")
	@Excel(name = "后端服务请求类型")
	private String backserviceReqType;

	/**
	 * 是否已升级
	 */
	@ApiModelProperty(value = "是否已升级")
	@Excel(name = "是否已升级")
	private String isUpgrade;
	/**
	 * 是否推荐
	 */
	@ApiModelProperty(value = "是否推荐")
	@Excel(name = "是否推荐")
	private String isRecommend;
	/**
	 * 是否为标准openapi3.0
	 */
	@ApiModelProperty(value = "是否为标准openapi3.0")
	@Excel(name = "是否为标准openapi3.0")
	private String isStandardApi;
	/**
	 * 业务要素获取方式
	 */
	@ApiModelProperty(value = "业务要素获取方式")
	@Excel(name = "业务要素获取方式")
	private String businessGetType;
	/**
	 * 渠道码
	 */
	@ApiModelProperty(value = "渠道码")
	@Excel(name = "渠道码")
	private String chnlcodeDetail;
	/**
	 * 报文类型
	 */
	@ApiModelProperty(value = "报文类型")
	@Excel(name = "报文类型")
	private String businessMessageGetType;
	/**
	 * 机构码
	 */
	@ApiModelProperty(value = "机构码")
	@Excel(name = "机构码")
	private String mercodeDetail;
	/**
	 * 是否自动生成路径
	 */
	@ApiModelProperty(value = "是否自动生成路径")
	@Excel(name = "是否自动生成路径")
	private String autoApiPath;
	/**
	 * 是否使用token校验  1-是  2-否
	 */
	@ApiModelProperty(value = "是否使用token校验")
	@Excel(name = "是否使用token校验")
	private String isToken;
	/**
	 * api类别
	 */
	@ApiModelProperty(value = "api类别")
	@Excel(name = "api类别")
	private Integer apiType;
	/**
	 * 报文大小
	 */
	@ApiModelProperty(value = "报文大小")
	@Excel(name = "报文大小")
	private String messageSize;
	/**
	 * 是否刷新 是否刷新   0-否  1-是
	 */
	@ApiModelProperty(value = "是否刷新")
	@Excel(name = "是否刷新")
	private String isRefresh;

	/**
	 * 请求报文示例 req_msg_example
	 */
	@ApiModelProperty(value = "请求报文示例")
	@Excel(name = "请求报文示例")
	private String reqMsgExample;
	/**
	 * 响应报文示例 res_msg_example
	 */
	@ApiModelProperty(value = "响应报文示例")
	@Excel(name = "响应报文示例")
	private String resMsgExample;
	/**
	 * 升级描述 update_des
	 */
	@ApiModelProperty(value = "升级描述")
	@Excel(name = "升级描述")
	private String updateDes;
	/**
	 * 上传服务器文件id FILE_IDS
	 */
	@ApiModelProperty(value = "上传服务器文件id")
	@Excel(name = "上传服务器文件id")
	private String fileIds;
	//------------新加 2020年12月2日09:25:56------------------------------
	/**
	 * api级识别路径  1-是 2-否
	 */
	@ApiModelProperty(value = "api级识别路径")
	@Excel(name = "api级识别路径")
	private String isIdentPath;
	/**
	 * api级识别路径
	 */
	@ApiModelProperty(value = "api级识别路径")
	@Excel(name = "api级识别路径")
	private String identPath;
	/**
	 * 是否根据内容路由： 1-是 2-否
	 */
	@ApiModelProperty(value = "是否根据内容路由")
	@Excel(name = "是否根据内容路由")
	private String isContentRoute;
	/**
	 * 服务编码
	 */
	@ApiModelProperty(value = "服务编码")
	@Excel(name = "服务编码")
	private String serviceCode;
	/**
	 * 服务细分码
	 */
	@ApiModelProperty(value = "服务细分码")
	@Excel(name = "服务细分码")
	private String serviceSubCode;

	/**
	 * 导出数据标识
	 */
	@ApiModelProperty(value = "导出数据标识")
	@JsonSerialize(using = ToStringSerializer.class,nullsUsing = NullSerializer.class)
	private String expSeq;

	@ApiModelProperty(value = "json格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "json格式报文配置文件附件")
	private Long jsonMsgConfig;

	@ApiModelProperty(value = "sep格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "sep格式报文配置文件附件")
	private Long sepMsgConfig;

	@ApiModelProperty(value = "fixed格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "fixed格式报文配置文件附件")
	private Long fixedMsgConfig;

	@ApiModelProperty(value = "kv格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "kv格式报文配置文件附件")
	private Long kvMsgConfig;

	@ApiModelProperty(value = "xml格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "xml格式报文配置文件附件")
	private Long xmlMsgConfig;

	@ApiModelProperty(value = "efet格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "efet格式报文配置文件附件")
	private Long efetMsgConfig;

	@ApiModelProperty(value = "是否上传后端服务报文配置文件，1：上传，2：配置")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "是否上传后端服务报文配置文件")
	private String isUploadBackFile;

	@ApiModelProperty(value = "是否使用网关插件，1：使用，2：不使用")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "是否使用网关插件")
	private String isPlugin;

	@ApiModelProperty(value = "是否使用协议转换")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "是否使用协议转换")
	private String isProtocol;

	@ApiModelProperty(value = "协议转换参数")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "协议转换参数")
	private String parameters;

	@ApiModelProperty(value = "协议转换类")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "协议转换类")
	private String interfaceId;

	@ApiModelProperty(value = "协议转换方法")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "协议转换方法")
	private String method;

	@ApiModelProperty(value = "协议转换调用地址")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "协议转换调用地址")
	private String directUrl;

	@ApiModelProperty(value = "是否使用基础产品公共报文")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "是否使用基础产品公共报文")
	private String isCommonConfig;

	@Excel(name = "交易码")
	private String txCode;

	@Excel(name = "发布协议参数配置")
	private String accessProtocolMsg;

	@Excel(name = "是否开启缓存(1:开启,2:关闭)")
	private String isEnableCache;

	@Excel(name = "缓存有效期")
	private String cacheExpire;

	@Excel(name = "加密参数")
	private String encryptParam;

	@Excel(name = "响应加密参数")
	private String resEncryptParam;

	@ApiModelProperty(value = "soap格式报文配置文件附件")
	@JsonSerialize(
			using = ToStringSerializer.class
	)
	@Excel(name = "soap格式报文配置文件附件")
	private Long soapMsgConfig;

	/**
	 * 脱敏方式
	 */
	@Excel(name = "脱敏方式(0:不脱敏,1:无效化*,2:数据混淆,3:对称加密)")
	private String sensitiveType;
}
